In a robot, the position and the speed of a member driven by a servo motor are controlled normally by a position feedback control, speed feedback control and current feedback control in such a manner that the position and the speed of the driven member coincide with the commanded position and the commanded speed, respectively.
Even in this feedback control of the position, the speed and current, a trajectory error and a position vibration component occur in a high-speed operation of the robot. Also, in the high-speed operation, the difference in dynamic characteristics between the motor and the arm makes it impossible to measure the trajectory error and the position vibration component of the arm directly from a motor encoder. Therefore, to measure the trajectory error and the position vibration component, it is necessary to mount a sensor directly on the arm. As an example of the learning control with a sensor mounted, a learning control using an acceleration sensor has been disclosed (Patent Document 1).
FIG. 1 is a schematic diagram showing a robot having the conventional learning controller for carrying out the learning control. A robot 100 is configured of a robot mechanism unit 1 and a control unit 2 for controlling the robot mechanism unit 1. The control unit 2 includes a learning control unit 3 for carrying out the learning control of the robot and a normal control unit 4 for directly driving the robot mechanism unit 1.
The robot mechanism unit 1 includes an acceleration sensor 10, an arm 11, an arm forward end portion 12 and a motor (not shown). The motor of the robot mechanism unit 1 is supplied with a signal from the normal control unit 4 of the control unit 2 and drives the arm 11. Further, the motor of the robot mechanism unit 1 moves the arm forward end portion 12 to the desired position and carries out a task such as welding. At the arm forward end portion 12, the acceleration sensor 10 is installed and can acquire the spatial position data (yj(k)) of the arm forward end portion 12. The position data (yj(k)) from the acceleration sensor 10 is output to the learning control unit 3 and used for the learning control. In the foregoing description, reference character j designates the number of times trials are made, k the time, and Ns the number of the times the sampling is made in each trial. Character yd(k) designates a position command, (yj(k)) the amount controlled in the preceding control session, and ej(k) the target correction amount calculated from yd(k) and (yj(k)) through a filter. Also, uj(k) designates the learning correction amount of the preceding control session.
The normal control 4 includes a position control unit 41, a speed control unit 42, a current control unit 43, an amplifier 44 and a differentiation means 45. The position control unit 41 receives the position command data (yd(k)) input from outside the control unit 2 and the position information of, for example, the motor of the robot mechanism 1, while at the same time outputting the desired position information of the arm forward end portion 12 of the robot mechanism unit 1 to the speed control unit 42. The differentiation means 45 receives the motor position information fed back from the robot mechanism 1, and by calculating the motor speed, outputs the motor speed to the speed control unit 42.
The speed control unit 42 calculates the desired motor speed taking the position information from the position control unit 41 and the motor speed information from the differentiation means 45 into consideration, and outputs the desired motor speed to the current control unit 43. The current control unit 43 receives the current value fed back from the amplifier 44 and, by calculating the current flowing in the motor in such a manner as to achieve the desired motor speed input from the speed control unit 42, outputs the resultant current to the amplifier 44. The amplifier 44 calculates the desired power based on the current value from the current control unit 43, and charges the desired power in the motor (not shown) of the robot mechanism unit 1.
The learning control unit 3 includes a one-trial delay unit W−1 300, a first memory 31, a learning controller L(q) 32, a low-pass filter Q(q) 33, a second memory 34 and a third memory 35. The first memory 31 is supplied with and stores, through a filter, a target correction amount ej(k) based on the position command data (yd(k)) for the arm forward end portion 12 and the position data (yj(k)) measured by the acceleration sensor 10, while at the same time outputting the target correction amount ej(k) to the learning controller L(q) 32. The target correction amount ej(k) corresponds to the trajectory and vibration errors with respect to the desired position of the arm forward end portion 12.
The learning controller L(q) 32, by executing the task program stored therein, calculates the learning correction amount uj+1(k) from the target correction amount ej(k) and the preceding learning correction amount uj(k), and outputs the learning correction amount uj+1(k) to the low-pass filter Q(q) 33. The learning correction amount uj+1(k) input to the low-pass filter Q(q) 33 is output to and stored in the second memory 34 while at the same time being added to the position error data calculated by the position control unit 41 of the normal control unit 4.
Based on the position error data thus corrected, the robot mechanism unit 1 is controlled and the learning control is repeated. In the learning control, this series of processes is repeatedly executed to converge the position error to “0”. After completion of the learning control, the loop for updating the learning correction amount indicated by the dotted line in FIG. 1 is not executed, and the learning correction amount uj+1(k) is output from the second memory 34 to the position control unit 41. Incidentally, in FIG. 1, the solid line defines the portion which is executed by the normal control unit 4 to operate the robot mechanism unit 1 after completion of the learning control in the learning operation indicated by the dotted line.
Patent Document 1: JP-A-2006-172149
In the conventional learning control, the improvement in the trajectory and vibration errors under a certain condition is considered. However, the problem is that the application range is narrow, and operating convenience is not taken into consideration.
The aforementioned conventional technique described above as an example of the learning control using a sensor, which represents an application to a machine tool, assumes the use of an acceleration sensor. In the case where the acceleration sensor is mounted on the robot, on the other hand, the problem is posed that the trajectory error and the position error, though capable of being extracted in orthogonal coordinates, cannot be calculated on each axis directly from the sensor data.
Also, according to the conventional technique described above, the normal high-pass filter is used to extract the trajectory and vibration errors from the acceleration sensor. In the machine tool, the frequency band for feedback control is as high as several tens of Hz to several hundred Hz, or in other words, the feedback control has a very high performance in this frequency band, and therefore, no serious problem is posed even in the case where the data of not more than 10 Hz cannot be learned to remove the offset data. Thus, the offset is not a great problem. In the industrial robot, on the other hand, the frequency band for feedback control is normally several Hz. In a higher frequency band, the feedforward control is conducted, and the performance is liable to depend on the intermodel error. Therefore, the particular part is corrected by learning control. In the case where a high-pass filter of 1 Hz is used to remove the offset of the data from the acceleration sensor, for example, the phase of the trajectory and the vibration errors of up to about 10 Hz rotates, and therefore, trajectory and vibration error data in the frequency band to be removed are also processed undesirably, thereby posing the problem that learning control performance is deteriorated.
Another problem is difficulty in adjusting the learning controller. Although various adjustment methods have been proposed, the problems that the number of controllers is high, stability is reduced and the vast amount of matrix calculation is required remain unsolved. Under the circumstances, the adjustment is made by trial and error in most work fields. Also, the fact that the robot system changes in accordance with the posture of the robot increases the difficulty of adjustment by trial and error. At present, an industrial robot having the learning function to increase the speed by adjusting the parameters automatically is still unavailable.